home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / src / GLperf3.12-src.lha / GLperf / README < prev    next >
Encoding:
Text File  |  1997-05-20  |  4.7 KB  |  120 lines

  1. Welcome to GLperf 3.1.2!
  2.  
  3. +--------------------------+
  4. | Documentation for GLperf |
  5. +--------------------------+
  6.  
  7. With the web browser of your choice, view GLperf.htm.  This is a complete
  8. reference manual for GLperf, and includes a _short_ (probably too short)
  9. tutorial.
  10.  
  11. +------------------------+
  12. | Build Notes for GLperf |
  13. +------------------------+
  14.  
  15. Which Makefile?
  16. ---------------
  17. For Unix based systems:
  18.     make -f Makefile.unx
  19.  
  20. For WinNT, Win95:
  21.     nmake /F Makefile.win
  22.  
  23. For OS/2:
  24.     nmake /F Makefile.os2
  25.  
  26. Size and function selection
  27. ---------------------------
  28. GLperf is a strange beast in that you can select how much functionality you
  29. want to include in it at compile (build) time.  The more functions you
  30. include, the bigger it gets (and it can get quite big!) so don't get
  31. overenthusiastic!  You can specify which functions you want by defining
  32. preprocessor variables in the Makefile.  These are the selectable functions:
  33.  
  34.     FULL_VERTEX_PATHS 
  35.     By default, you can only use a "VertexDim" (or vertex dimension)
  36.     of 3 (that is, you can only use glVertex3fv commands).   By defining
  37.     this variable, you can enable the use of 2d vertices as well.
  38.  
  39.     FULL_RASTERPOS_PATHS 
  40.     By default, you can only use a "RasterPosDim" (or rasterpos dimension)
  41.     of 3 (that is, you can only use glRasterPos3fv commands).   By defining
  42.     this variable, you can enable the use of 2d raster positions as well.
  43.  
  44.     FULL_COLOR_PATHS 
  45.     By default, you can only use a "ColorDim" (or color dimension)
  46.     of 3 (that is, you can only use glColor3fv commands).   By defining
  47.     this variable, you can enable the use of RGBA data as well.
  48.  
  49.     FULL_TEXTURE_PATHS 
  50.     By default, you can only use a "TexTarget" (or texture target)
  51.     of GL_TEXTURE_2D (that is, you can only use 2d texture images and
  52.     coordinates).   By defining this variable, you can enable the use of 
  53.     GL_TEXTURE_1D (1d texture images) and even 3 or 4 dimensional textures
  54.     if your OpenGL implementation supports the GL_EXT_texture3D or
  55.     GL_SGIS_texture4D extensions respectively.
  56.  
  57.     FULL_UNROLL_PATHS
  58.     By default, you cannot unroll calls in the inner traversal loop
  59.     in GLperf.  Definition of this variable allows you to unroll up
  60.     to 8 vertices in the inner loop, if possible.  Some primitives
  61.     are not unrolled at all due to their relatively long execution
  62.     times (PixelRects, TexImages, Bitmap, Text).
  63.  
  64.     FULL_FUNCPTR_PATHS
  65.     Definition of this variable allows the user of GLperf to set
  66.     "LoopFuncPtrs" (or loop function pointers) to "True".  Under
  67.     this condition, all function calls in the inner loop will
  68.     be made through function pointers.  This is faster on some 
  69.     architectures.
  70.  
  71. As I hinted above, capricious definition of these variables can result
  72. in an executable considerably larger than necessary.  You are therefore
  73. admonished to set only the variables that you will need!  Enough said.
  74.  
  75. Here's a little data on the different IRIX sizes of GLperf, when compiled 
  76. with optimization and then stripped of symbols.  As always, your sizes
  77. may be more or less than these numbers (probably less if you're running
  78. on a CISC processor like x86; about the same for most RISC processors).
  79.  
  80. Size             FULL_XXXX_PATHS variables defined
  81. (MB)    VERTEX   RASTERPOS  TEXTURE   COLOR    FUNCPTR  UNROLL
  82. 16.8       x         x         x        x         x        x
  83.  5.2       x         x         x        x         x
  84.  4.4       x         x         x        x
  85.  3.9       x         x         x
  86.  2.7       x         x
  87.  2.7       x
  88.  2.5
  89.  
  90. lex and yacc dependency
  91. -----------------------
  92. For you non-Unix users, we have included the files generated from running
  93. lex and yacc on the files Parse.l and Parse.y respectively.  This will
  94. allow you to get by unless you want to modify those parsing files in some 
  95. way (i.e. if you have masochistic proclivities).  If that is the case,
  96. I'd recommend getting a freely available copy of flex and bison from 
  97. the Free Software Foundation.  I won't list sites with these packages 
  98. (just use any web search engine for sites), but you can contact the FSF at:
  99.     Free Software Foundation, Inc.
  100.     675 Massachusetts Ave.
  101.     Cambridge, MA 02139
  102.     (617) 876-3296
  103.  
  104. General notes for curious readers
  105. ---------------------------------
  106. GLperf has a number of "generator" files that are all of the form *G.c
  107. They are compiled by themselves into executables and then run.  They
  108. will generate one or more files of the form *F.c  These *F.c files
  109. #include *X.c files into them when they are compiled.  The *X.c files
  110. can be thought of as templates, as they have tons of preprocessor directives
  111. to make enumeration of traversal routines as general and easy as possible.
  112.  
  113. If you have suggestions, criticisms, comments or anything to say about
  114. GLperf, its structure or Makefile(s), please drop me line at spit@sgi.com
  115.  
  116. Good luck!
  117. John Spitzer
  118. spit@sgi.com
  119. August 30, 1996
  120.